package com.yunnuo.common.web;

import net.sf.json.JSON;
import net.sf.json.JSONObject;

/**
 * 返回到web界面，操作结果以JSON对象表示
 * Created by 魏洪福(15064000912@163.com) on  2018/5/25.
 */
public class ResultData {

	public final static String STAT_FAILURE = "0";
	public final static String STAT_SUCCESS = "1";
	public final static String STAT_NOT_LOGINED = "2";
	public final static String STAT_NO_AUTH = "3";
	// 操作结果：0.失败；1.成功；2.未登录；3.没有权限；
	private String stat;
	// 给客户端的提示信息
	private String message;
	private Object data;

	public ResultData() {
		super();
	}

	/**
	 *
	 * @param stat
	 * @param message
	 */
	public ResultData(String stat, String message) {
		this.stat = stat;
		this.message = message;
	}

	/**
	 * 获得成功的操作结果
	 * 
	 * 
	 * @param message
	 * @return
	 */
	public static ResultData success(String message) {
		ResultData result = new ResultData(STAT_SUCCESS, message);
		result.setData("");
		return result;
	}

	/**
	 * 获得成功的操作结果
	 * 
	 * 
	 * @param message
	 * @return
	 */
	public static ResultData success(String message, Object data) {
		ResultData result = new ResultData(STAT_SUCCESS, message);
		result.setData(data == null ? "" : data);
		return result;
	}

	/**
	 * 获得成功的操作结果,直接以JSON表示
	 * 
	 * @param message
	 * @return
	 */
	public static JSON successToJson(String message) {
		ResultData result = new ResultData(STAT_SUCCESS, message);
		result.setData("");
		return result.toJson();
	}

	/**
	 * 获得失败的操作结果,直接以JSON表示
	 * 
	 * @param message
	 * @return
	 */
	public static JSON failureToJson(String message) {
		ResultData result = new ResultData(STAT_FAILURE, message);
		result.setData("");
		return result.toJson();
	}

	/**
	 * 获得失败的操作结果,直接以JSON表示
	 * 
	 * @param message
	 * @return
	 */
	public static ResultData failure(String message) {
		ResultData result = new ResultData(STAT_FAILURE, message);
		result.setData("");
		return result;
	}

	/**
	 * 
	 * @return 返回的对象
	 */
	public Object getData() {
		return data;
	}

	/**
	 * 返回的对象
	 * 
	 * @param data
	 */
	public void setData(Object data) {
		this.data = data;
	}

	public String getMessage() {
		return message;
	}

	public void setMessage(String message) {
		this.message = message;
	}


	/**
	 * 将当前对象转换为JSON对象。
	 * 
	 * @return
	 */
	public JSON toJson() {
		return JSONObject.fromObject(this);
	}

	/**
	 * @return the stat
	 */
	public String getStat() {
		return stat;
	}

	/**
	 * @param stat
	 *            the stat to set
	 */
	public void setStat(String stat) {
		this.stat = stat;
	}

}
